{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "07912f90",
   "metadata": {},
   "outputs": [],
   "source": [
    "def bezier(t,p0,p1,p2,p3):\n",
    "    a=(p1-p0)*t+p0\n",
    "    b=(p2-p1)*t+p1\n",
    "    c=(p3-p2)*t+p2\n",
    "    d=(b-a)*t+a\n",
    "    e=(c-b)*t+b\n",
    "    p=(e-d)*t+d\n",
    "    return p"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "id": "9dafa6bf",
   "metadata": {},
   "outputs": [],
   "source": [
    "def bezier1(t,px,py):\n",
    "    px=np.array(px)\n",
    "    py=np.array(py)\n",
    "    n=px.size\n",
    "    ax=np.zeros((1,n))\n",
    "    ay=np.zeros((1,n))\n",
    "    b=np.zeros((2,n))\n",
    "    for i in range(0,n):\n",
    "        for j in range (0,n-i-1):\n",
    "            ax[j]=(px[j+1]-px[j])*t+px[j]\n",
    "            ay[j]=(py[j+1]-py[j])*t+py[j]\n",
    "            b[0,j]=ax[j]\n",
    "            b[1,j]=ay[j]\n",
    "        px=b[0,:]\n",
    "        py=b[1,:]\n",
    "    p=np.array([ax[0],ay[0]])\n",
    "    return p"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "id": "fd8ec56e",
   "metadata": {},
   "outputs": [
    {
     "ename": "ValueError",
     "evalue": "setting an array element with a sequence.",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mTypeError\u001b[0m                                 Traceback (most recent call last)",
      "\u001b[1;31mTypeError\u001b[0m: only size-1 arrays can be converted to Python scalars",
      "\nThe above exception was the direct cause of the following exception:\n",
      "\u001b[1;31mValueError\u001b[0m                                Traceback (most recent call last)",
      "\u001b[1;32m~\\AppData\\Local\\Temp/ipykernel_22124/955971603.py\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[0;32m      2\u001b[0m \u001b[0mpx\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;36m2\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;36m3\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m      3\u001b[0m \u001b[0mpy\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 4\u001b[1;33m \u001b[0mbezier1\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mt\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mpx\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mpy\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[1;32m~\\AppData\\Local\\Temp/ipykernel_22124/4259644329.py\u001b[0m in \u001b[0;36mbezier1\u001b[1;34m(t, px, py)\u001b[0m\n\u001b[0;32m     10\u001b[0m             \u001b[0max\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mj\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mpx\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mj\u001b[0m\u001b[1;33m+\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m-\u001b[0m\u001b[0mpx\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mj\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m*\u001b[0m\u001b[0mt\u001b[0m\u001b[1;33m+\u001b[0m\u001b[0mpx\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mj\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m     11\u001b[0m             \u001b[0may\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mj\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mpy\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mj\u001b[0m\u001b[1;33m+\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m-\u001b[0m\u001b[0mpy\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mj\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m*\u001b[0m\u001b[0mt\u001b[0m\u001b[1;33m+\u001b[0m\u001b[0mpy\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mj\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 12\u001b[1;33m             \u001b[0mb\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mj\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0max\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mj\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m     13\u001b[0m             \u001b[0mb\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mj\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0may\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mj\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m     14\u001b[0m         \u001b[0mpx\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mb\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;31mValueError\u001b[0m: setting an array element with a sequence."
     ]
    }
   ],
   "source": [
    "t=0.5\n",
    "px=[0,1,2,3]\n",
    "py=[0,1,1,0]\n",
    "bezier1(t,px,py)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "id": "573afdd9",
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "id": "9a464f32",
   "metadata": {},
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "id": "91d2716d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([1.5 , 0.75])"
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "t=0.5\n",
    "p0=np.array([0,0])\n",
    "p1=np.array([1,1])\n",
    "p2=np.array([2,1])\n",
    "p3=np.array([3,0])\n",
    "bezier(t,p0,p1,p2,p3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "id": "e9303066",
   "metadata": {},
   "outputs": [],
   "source": [
    "def route(p0,p1,p2,p3):\n",
    "    n=101\n",
    "    arrp=np.zeros((n,2))\n",
    "    tlist=np.linspace(0,1,n)\n",
    "    index=0\n",
    "    for t in tlist:\n",
    "        arrp[index,:]=bezier(t,p0,p1,p2,p3)\n",
    "        index+=1\n",
    "    return arrp"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "id": "bfb5a16b",
   "metadata": {},
   "outputs": [],
   "source": [
    "arrp=route(p0,p1,p2,p3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "id": "596be52c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x1b11773dd30>]"
      ]
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(arrp[:,0],arrp[:,1])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "id": "f8c2d933",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x1b1177aca00>]"
      ]
     },
     "execution_count": 43,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "t=1\n",
    "p0=np.array([0,0])\n",
    "p1=np.array([1,-1])\n",
    "p2=np.array([2,-1])\n",
    "p3=np.array([3,0])\n",
    "arrp1=route(p0,p1,p2,p3)\n",
    "plt.plot(arrp1[:,0],arrp1[:,1])\n",
    "plt.plot(arrp[:,0],arrp[:,1])\n",
    "plt.plot(arrp1[:,0]+4,arrp1[:,1])\n",
    "plt.plot(arrp[:,0]+4,arrp[:,1])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "id": "78dfc6b6",
   "metadata": {},
   "outputs": [],
   "source": [
    "P=[\n",
    "    [0,0,0,1,2,1,2,0],\n",
    "    [0,0,0,-1,2,-1,2,0],\n",
    "    [0,0,0,1,2,1,2,0],\n",
    "    [0,0,0,-1,2,-1,2,0]\n",
    "]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "id": "6684fffa",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[0 0]\n",
      " [0 1]\n",
      " [2 1]\n",
      " [2 0]] 1\n",
      "[[ 0  0]\n",
      " [ 0 -1]\n",
      " [ 2 -1]\n",
      " [ 2  0]] 2\n",
      "[[0 0]\n",
      " [0 1]\n",
      " [2 1]\n",
      " [2 0]] 3\n",
      "[[ 0  0]\n",
      " [ 0 -1]\n",
      " [ 2 -1]\n",
      " [ 2  0]] 4\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "i=0\n",
    "for p in P:#每次循环调用一行\n",
    "    p=np.array(p)\n",
    "    p=p.reshape((4,2))\n",
    "    i+=1\n",
    "    print(p,i)\n",
    "    arrp=route(p[0],p[1],p[2],p[3])\n",
    "    plt.plot(arrp[:,0],arrp[:,1],'-r')\n",
    "    "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "id": "577a4c62",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0\n",
      "1\n"
     ]
    }
   ],
   "source": [
    "for i in range(2):\n",
    "    print(i)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "764e9932",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "d8ae2b6f",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
